#include "kppch.h"

#include "reflection.h"
#include "sampling.h"

namespace kp {

	Spectrum BxDF::sample_f(const Vec3f& wo, Vec3f* wi,
		const Point2f& sample, Float* pdf, BxDFType* sampledType) const {
		// Cosine-sample the hemisphere, flipping the direction if necessary
		*wi = CosineSampleHemisphere(sample);
		if (wo.z < 0) wi->z *= -1;
		*pdf = this->pdf(wo, *wi);
		return f(wo, *wi);
	}

	Spectrum BxDF::rho(const Vec3f& wo, int nSamples, const Point2f* samples) const {
		return Spectrum();
	}

	Spectrum BxDF::rho(int nSamples, const Point2f* samples1, const Point2f* samples2) const {
		return Spectrum();
	}

	Float BxDF::pdf(const Vec3f& wo, const Vec3f& wi) const {
		return Float();
	}

}
